Implement the VM.auto_power_on field.
authorEwan Mellor <ewan@xensource.com>
Fri, 8 Dec 2006 10:59:18 +0000 (10:59 +0000)
committerEwan Mellor <ewan@xensource.com>
Fri, 8 Dec 2006 10:59:18 +0000 (10:59 +0000)
Signed-off-by: Ewan Mellor <ewan@xensource.com>
tools/libxen/include/xen_vm.h
tools/libxen/src/xen_vm.c

index a0491ce2e665384b2dfd6d21f3f6cacd2ef405ac..c2fc5e42b98af82c3d72dbf75b18d33de458e639 100644 (file)
@@ -79,6 +79,7 @@ typedef struct xen_vm_record
     char *name_description;
     int64_t user_version;
     bool is_a_template;
+    bool auto_power_on;
     struct xen_host_record_opt *resident_on;
     int64_t memory_static_max;
     int64_t memory_dynamic_max;
@@ -276,6 +277,13 @@ extern bool
 xen_vm_get_is_a_template(xen_session *session, bool *result, xen_vm vm);
 
 
+/**
+ * Get the auto_power_on field of the given VM.
+ */
+extern bool
+xen_vm_get_auto_power_on(xen_session *session, bool *result, xen_vm vm);
+
+
 /**
  * Get the resident_on field of the given VM.
  */
@@ -563,6 +571,13 @@ extern bool
 xen_vm_set_is_a_template(xen_session *session, xen_vm vm, bool is_a_template);
 
 
+/**
+ * Set the auto_power_on field of the given VM.
+ */
+extern bool
+xen_vm_set_auto_power_on(xen_session *session, xen_vm vm, bool auto_power_on);
+
+
 /**
  * Set the memory/dynamic_max field of the given VM.
  */
index 9743222c0245a2aed3c1de0d5c74083ae9e6968c..e6c95fc12e5c9c6b758fafdd2b8e05912f6c5722 100644 (file)
@@ -67,6 +67,9 @@ static const struct_member xen_vm_record_struct_members[] =
         { .key = "is_a_template",
           .type = &abstract_type_bool,
           .offset = offsetof(xen_vm_record, is_a_template) },
+        { .key = "auto_power_on",
+          .type = &abstract_type_bool,
+          .offset = offsetof(xen_vm_record, auto_power_on) },
         { .key = "resident_on",
           .type = &abstract_type_ref,
           .offset = offsetof(xen_vm_record, resident_on) },
@@ -398,6 +401,22 @@ xen_vm_get_is_a_template(xen_session *session, bool *result, xen_vm vm)
 }
 
 
+bool
+xen_vm_get_auto_power_on(xen_session *session, bool *result, xen_vm vm)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = vm }
+        };
+
+    abstract_type result_type = abstract_type_bool;
+
+    XEN_CALL_("VM.get_auto_power_on");
+    return session->ok;
+}
+
+
 bool
 xen_vm_get_resident_on(xen_session *session, xen_host *result, xen_vm vm)
 {
@@ -1081,6 +1100,22 @@ xen_vm_set_is_a_template(xen_session *session, xen_vm vm, bool is_a_template)
 }
 
 
+bool
+xen_vm_set_auto_power_on(xen_session *session, xen_vm vm, bool auto_power_on)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = vm },
+            { .type = &abstract_type_bool,
+              .u.bool_val = auto_power_on }
+        };
+
+    xen_call_(session, "VM.set_auto_power_on", param_values, 2, NULL, NULL);
+    return session->ok;
+}
+
+
 bool
 xen_vm_set_memory_dynamic_max(xen_session *session, xen_vm vm, int64_t dynamic_max)
 {